#include <stdio.h>

// 函数用于将数组元素右移 k 位
void rotate(int* nums, int numsSize, int k) {
    // 处理 k 大于 numsSize 的情况
    k = k % numsSize;
    
    // 右移 k 位
    for(int i = 0; i < k; i++) {
        int last = nums[numsSize - 1]; // 保存数组最后一个元素
        for(int j = numsSize - 1; j > 0; j--) {
            nums[j] = nums[j - 1]; // 右移元素
        }
        nums[0] = last; // 将最后一个元素放到数组开头
    }
}

// 打印数组元素
void printArray(int* nums, int numsSize) {
    for(int i = 0; i < numsSize; i++) {
        printf("%d ", nums[i]);
    }
    printf("\n");
}

int main() {   
    int nums[] = {1, 2, 3, 4, 5}; // 初始化数组
    int numsSize = sizeof(nums) / sizeof(nums[0]); // 计算数组大小
    int k = 3; // 右移的位数
    
    rotate(nums, numsSize, k); // 调用旋转函数
    printArray(nums, numsSize); // 打印旋转后的数组
    
    return 0;
}